<?php

namespace App\Http\Controllers\rbac;

use App\Http\Controllers\Controller;
use App\Models\Role;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Pagination\Paginator;

class AuthController extends Controller
{

    /**
     * 管理员页面
     */
    public function adminPage(Request $request){
        Paginator::useBootstrap();
        $keyword=$request->get('username');
        $data=User::where('username','like',"%$keyword%")->orderBy('id','desc')->paginate(2);
//        withTrashed()->
        return view('rbac/admin_list',compact('data','keyword'));
    }

    //    添加页面
    public function adminCreate(){
        return  view('rbac/admin_create');
    }
//      执行添加
    public function doSave(Request $request){
           $params=$request->except('_token');
            $res=User::insert($params);
            if ($res){
                return redirect(route('adminPage'));
            }else{
                return redirect(route('createPage'))->withErrors('添加失败');
            }


    }
    /**
     * 给用户分配角色
     */
    public function allotRole(User $user,Request $request)
    {
        //判断是否是否是get请求，如果是get请求，就是分配页面，如果是post请求就是分配方法
        if ($request->isMethod('get')) {
            //查询出所有的角色
            $role = Role::all();
            //获取当前用户的角色的RoleID
            $currentRoleID = $user->role()->value('id');
            return view('rbac/admin_role',compact('role','user','currentRoleID'));
        }else{
            $user->role_id = $request->get('role_id');
            $res = $user->save();
//             dd($res);
            //写入成功，跳转到管理员列表页面
            if ($res) {
                return redirect(route("adminPage"));
            } else {
                //写入失败，还在当前页，来一个友好提示
                return redirect(route("allotRole"))->withErrors("分配角色失败");
            }

        }
    }




}
